<?php
/**
 * <https://y.st./>
 * Copyright © 2019 Alex Yst <mailto:copyright@y.st>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <https://www.gnu.org./licenses/>.
**/

$xhtml = array(
	'<{title}>' => 'Looking into Perl',
	'takedown' => '2017-11-01',
	'<{body}>' => <<<END
<img src="/img/CC_BY-SA_4.0/y.st./weblog/2019/03/12.jpg" alt="Bus" class="framed-centred-image" width="649" height="480"/>
<section id="dreams">
	<h2>Dream journal</h2>
	<p>
		I dreamed Vanessa was so young that she was just starting to learn language, but we were fighting supernatural forces together.
		Several versions of Abe Lincoln were present at various times.
		Vanessa and I had to keep our activities secret from our parents though.
	</p>
</section>
<section id="Perl">
	<h2>Looking into Perl</h2>
	<p>
		I really, <strong>*really*</strong> needed a break.
		So I looked into Perl.
		One of the ways I unwind is to research things.
		I guess that makes me a weirdo.
	</p>
	<p>
		But anyway, I&apos;d love to know if Perl would fit my use case in place of $a[PHP].
		I&apos;m told the languages are similar.
		My experiments didn&apos;t seem to be going well at first.
		I defined a subroutine specifically to see if subroutines could be redefined.
		I&apos;m looking for a language that does not allow this, just as $a[PHP] does not.
		Perl didn&apos;t seem to have any fatal errors when I tried to redefine the subroutine, but it did emit a warning.
		Whenever I tried to call my subroutine though, it did nothing even though it was supposed to print output.
		Even when I deleted the second definition, which removed the warning, no output was generated.
	</p>
	<p>
		After much experimentation and debugging, I figured out that when a subroutine is defined twice, lines referencing that subroutine seem to just get ignored.
		There&apos;s no fatal error and lines after the redefinition and after the skipped calls will still be run.
		It&apos;s also worth noting that definitions seem to be generated at compile time, not run time, so function calls existing &quot;before&quot; the redefinition are still ignored just like the ones after.
		I suppose that fits the use case that subroutines cannot be redefined, though it seems outright bizarre that the script would continue on as if those function calls simply did not exist.
		I&apos;d label this as deal-breaking, as it could cause issues to be ignored rather than caught, but as long as you put <code>use warnings;</code> at the beginning of all your files, there shouldn&apos;t actually be any real problems with the behaviour.
	</p>
</section>
<section id="drudgery">
	<h2>Drudgery</h2>
	<p>
		My discussion posts for the day:
	</p>
	<blockquote>
		<p>
			Sure, our brains handle outliers, exceptions, nuances, humour, and situations better than a computer does.
			But <strong>*why*</strong>?
			It&apos;s not because we&apos;re anything special or unrepeatable.
			It&apos;s just the way our brains are built.
			As we better learn to understand how we function, we&apos;ll be able to replicate that in machines as well.
			Our existence is proof that a thing can be constructed that can perform these tasks.
			The challenge now, is to construct it mechanically instead of biologically.
			There&apos;s nothing we can do that can&apos;t be performed better by a machine built to do that thing.
			All we lack right now is the knowledge as to how to build those machines.
		</p>
	</blockquote>
	<blockquote>
		<p>
			I wouldn&apos;t say that all the learning happens in the hidden layers.
			In the assignment for the week, we&apos;re able to construct a network with an input layer and an output layer, but no hidden layers.
			The learning capabilities of such a network are more limited, but I invite you to try it out.
			The network is still able to learn some, proving that some of the learning happens outside these layers.
			My understanding is that the learning basically happens between the layers, at the connections, though it&apos;s probably more technically correct to say the learning happens at the nodes receiving input from those connections.
			That would mean that the nodes in the hidden layers are able to learn, but the nodes in the output layer are <strong>*also*</strong> able to learn.
			The only nodes not learning are those in the input layer.
		</p>
	</blockquote>
</section>
<section id="hair">
	<h2>Hair removal</h2>
	<p>
		There are other dermatological clinics here in my city, besides the one that&apos;s missing a $a[laser] technician at the moment, but none of their websites mention $a[laser] hair removal as a service they provide.
		I&apos;ll probably need to bike to the next city over for this after all.
		Too bad.
	</p>
	<p>
		I guess I need to try to get my reading assignment done as quickly as possible tomorrow.
		<del>If there&apos;s time after I finish, I can go look into one of the Eugene clinics that offers the service.</del>
	</p>
	<p>
		<ins>Actually, scratch that part about looking into clinics tomorrow.
		The dietician my doctor referred me to sent me a letter that arrived in the mail today.
		Why the doctor referred me to a dietician in the next city over instead of one in this city is unknown to me, but they did, so it&apos;s going to take a good chunk of time to bike there.
		Perhaps none (or none covered by insurance) are within city limits.
		Who knows.
		Whatever the reason, there&apos;s not going to be time to bike to clinics offering $a[laser] hair removal until next week.</ins>
	</p>
</section>
END
);
